<?php namespace Admin\Controller;
use Hdphp\Controller\Controller;
/**
 * 分类控制器
 */
Class CateController extends CommonController{
	private $model;
	public function __auto(){
		$this->model = new \Common\Model\Cate;
	}
	public function index(){
		//这儿操作的是cate表
		//查询表数据并获取到，将其赋值给$cateData；
		$cateData = $this->model->get();
		$cateData = Data::tree($cateData,'cname');
		// p($cateData);
		// Array
		// (
		//     [0] => Array
		//         (
		//             [cid] => 2
		//             [cname] => 上衣
		//             [pid] => 0
		//             [csort] => 100
		//             [type_tid] => 10
		//         )

		// )
		//将该数据进行分配到Cate底下的index.php 页面里面去
		$this->assign('cateData',$cateData);
		$this->display();
	}
	/**
	 * [add 添加父级分类]
	 */
	public function add(){
		
		// 1、处理所属类型(type_tid)的问题(在没有提交的时候进行类型表数据的分配。)
		$typeModel = new \Common\Model\Type;//实例化模型Type，可以在下面实例化方法。
		$typeData = $typeModel->get();
		// p($typeData);
		$this->assign('typeData',$typeData);
		if(IS_POST){
			// p(Q('post.'));//=====>打印出来的结果分析，有tid一类，得先将该类处理
			// Array
			// (
			//     [cname] => 111
			//     [pid] => 0
			//     [tid] => 0
			//     [csort] => 100
			// )
			if($this->model->cateAdd()){
				// die;
				$this->success('添加成功',U('Cate/index'));
			}
			// die;
			$this->error($this->model->getError());
		}
		$this->display();
	}

	/**
	 * [addSon 添加子类分类]
	 */
	public function addSon(){
		// p(Q('get.'));
		// p(Q('post.'));
		if(IS_POST){
			if($this->model->addSon()){
				// p(Q('post.'));
				// die;
				$this->success('添加成功',U('Cate/index'));
			}
			// die;
			$this->error('添加失败');
		}
		//获取到当前的pid值(即cid);
		// p(Q('get.'));获取到从index.php处接收到的cid值，并将从数据库中查询出来，分配到addSon页面中去.
		$data = $this->model->where(array('cid'=>Q('get.cid')))->find();
		// p($data);
		// p($data);
		// Array
		// (
		//     [cid] => 8
		//     [cname] => 特殊服饰
		//     [pid] => 0
		//     [csort] => 100
		//     [type_tid] => 0
		// )
		// 将查询的数据分配到addson页面中去
		$this->assign('data',$data);
		// 1、处理所属类型(type_tid)的问题(在没有提交的时候进行类型表数据的分配。)
		$typeModel = new \Common\Model\Type;//实例化模型Type，可以在下面实例化方法。
		$typeData = $typeModel->get();
		// p($typeData);
		$this->assign('typeData',$typeData);
		$this->display();
	}
	/**
	 * [edit 编辑分类]
	 * @return [type] [description]
	 */
	public function edit(){   
		// 4、覆盖旧数据
		if(IS_POST){
			if($this->model->edit()){
				// die;
				$this->success('修改成功',U('Cate/index'));
			}
			// die;
			$this->error('修改失败');
		}
		// 1、获取旧数据
		$cid = Q('get.cid');
		$oldData = $this->model->where(array('cid'=>$cid))->find();
		// p($oldData);
		// Array
		// (
		//     [cid] => 12
		//     [cname] => 呢绒大衣
		//     [pid] => 10
		//     [csort] => 100
		//     [type_tid] => 12
		// )
		// 这是呢绒大衣的子类
		// Array
		// (
		//     [cid] => 15
		//     [cname] => 长袖
		//     [pid] => 12
		//     [csort] => 100
		//     [type_tid] => 12
		// )
		$this->assign('oldData',$oldData);
		// 2、编辑所属分类(但要排除自己和自己的子集，这样的话才不会出现断层)
		// 获取数据(排除自己和自己的子集数据，通过getNoMy方法，在model层实现该数据);
		$cateData = $this->model->getNoMy($cid);//$cateData 是接收来自getNoMy()方法传过来的数据
		// p($cateData);没错，传输正确
		// [8] => Array
		        // (
		        //     [cid] => 8
		        //     [cname] => 特殊服饰
		        //     [pid] => 0
		        //     [csort] => 100
		        //     [type_tid] => 0
		        //     [_level] => 1
		        //     [_html] => 
		        //     [_name] => 特殊服饰
		        // )
		// 进行数据的分配
		$this->assign('cateData',$cateData);

		//3、获得当前的所属类型;
		$typeModel = new \Common\Model\Type;
		$typeData = $typeModel->get();
		// p($typeData);
		// Array
		// (
		//     [tid] => 12
		//     [tname] => 上衣
		// )
		$this->assign('typeData',$typeData);
		$this->display();
	}
	/**
	 * [del 分类列表的删除方法]
	 * @return [type] [description]
	 */
	public function del(){
		// 删除分两步：1、考虑该删除项下面是否还有内容，若有内容则提醒用户，下面还有内容不能删除
		// 2、删除完后，删除项的子集得向上移动一级，
		$cid = Q('get.cid',0,'intval');
		$data = $this->model->get();
		// p($cid);
		if($this->model->getRe($data,$cid)){
			// die;
			$this->success('删除成功',U('cate/index'));
		}
		// die;
		$this->error($this->model->getError());
	}
}

?>